open source

From IndieWeb


Open source in the IndieWeb refers to both a set of projects where community members share their creations (usually code, open source software, or OSS) to collaborate & build together, and an imperative from our principles encouraging public sharing of code, designs, and content for re-use by others in and beyond the community.

Why

Open sourcing at least part of your IndieWeb project is a great way to enable & encourage asynchronous feedback from the rest of the community.

Your code may be useful as a reference for others who are implementing similar functionality or standards support.

By separating at least some of your code into an open source library, you may provide a building block that many other developers can use to more rapidly implement similar applications or features.

How to

How to open source a project

Before you open source a project, you should make sure that any proprietary code that you would like to keep to yourself is separate from the code you open source. You should also:

  • Choose a license for your code
  • Remove any sensitive information
  • Write a README that explains your project and how it works

Further down the line, you might want to write a CONTRIBUTING file that outlines how people can contribute to your project.

Ideally you should open source your code on your own site, and share it where others may easily re-use it.

Many IndieWeb community members publish open source projects on GitHub. GitHub has wide adoption in the developer community and an extensive range of interactive, intuitive tools that you can use to collaborate on projects together.

Open for contributions

There are many open-source IndieWeb projects which encourage and support contributions.

Here are a few, clustered by programming language:

JavaScript

  • mf2tojf2, converts MF2 to JF2.
  • Indiekit, a Micropub server that currently supports git based static sites
  • CASSIS, a library and set of utilities for some common internal functionality on IndieWeb sites

PHP

  • CASSIS, as long as you’re willing to write JS-compatible PHP syntax.
  • indiewebify.me, a website that helps people get started with the IndieWeb and test their implementations of various basic building blocks.

Python

  • mf2py, the Python microformats parser.
  • IndieWeb_Utils, a Python library that makes it easy to add IndieWeb building blocks to your web application
  • brid.gy, the POSSE and backfeed as a service tool.
  • granary, the social web translator tool.
  • IndieWeb Search, a web crawler, interface, and search back-end. This project indexes IndieWeb and related websites and makes them searchable.

Looking for

Looking for examples of active OSS projects that have or help IndieWeb functionality in these languages:

Go

  • Add examples...

Ruby

  • Add examples...

Community Members Writing Open Source Code

Community members who publish open source code that relates to the IndieWeb (alphabetical by full name)

Participating in IndieWeb Standard Development

Members of the IndieWeb community have contributed to, written, and edited various standards. If you implement a standard on your site and want to get involved with it, you can do so by open sourcing your code, writing about your implementation, and/or sharing your thoughts about the standard and what it allows you to do.

The IndieWeb community maintains an IndieWeb GitHub account where you can file feature requests and issues that relate to standards. Sharing your ideas about how a standard can be improved will aid its development even if the standard is mature. Our community standards, including those that are stable, all benefit from hearing developers' experience implementing them. Sharing your thoughts will help the community figure out how standards can be improved.

See Also

Open Source IndieWeb related projects and tools
Topics Why open source? β€’ How to open source a project β€’ Open for contributions β€’ IndieWeb Principles
PHP b2evolution β€’ CASSIS β€’ Known β€’ Falcon (portions) β€’ p3k β€’ stapibas β€’ dobrado β€’ Grav β€’ Miniflux-legacy β€’ processwire β€’ Reader Self β€’ Textpattern β€’ tt-rss β€’ Twyne β€’ TYPO3
WordPress (PHP) Indieweb Plugin β€’ Webmention β€’ Semantic Linkbacks β€’ Micropub β€’ IndieAuth β€’ Post Kinds β€’ Syndication Links β€’ WebSub plugins β€’ See Template:WordPress for others.
Python Bridgy Fed β€’ BeautifulSoup β€’ Bleach β€’ Bundle β€’ django CMS β€’ IndieWeb Search β€’ IndieWeb Utils β€’ kaku β€’ mf2util β€’ Nefelibata β€’ ninka β€’ Publ β€’ python-indieweb β€’ Red Wind β€’ Requests β€’ ronkyuu β€’ Woodwind
Ruby Dark Matter β€’ Feedbin β€’ FrancisCMS β€’ Micropublish β€’ Publify β€’ Ruby on Rails β€’ Sinatra β€’ Singulus β€’ Transformative β€’ webmention.io β€’ Jekyll
JavaScript AerosolCMS β€’ CASSIS β€’ Ghost β€’ Camel β€’ IndieKit β€’ Eleventy
Others Hugo (Go) β€’ Firefox β€’ NetNewsWire